<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>列表过滤渲染</title>
		<script src="./js/vue.js"></script>
	</head>
	<body>
		<!--
		v-for指令
		1.用于展示列表数据
		2.语法:v-for="(item,index) in xxx" :key="yyy"
		3.可遍历:数组、对象、字符串、指定次数
		准备好一个容器
		-->
		<div id="root">
			<!-- 遍历数组 -->
			<input type="text" v-model="keyWord" />
			<h2>人员列表</h2>
			<ul>
				<li v-for="(p,index) of filterPerson" :key="p.id">
				{{p.name}}-{{p.age}}-{{p.sex}}
				</li>
			</ul>
		</div>
		<script>
			Vue.config.productionTip = false;
			// 使用watch实现
			// const vm = new Vue({
			// 	el:'#root',
			// 	data:{
			// 		keyWord:'',
			// 		persons:[
			// 			{id:'001','name':'马冬梅',age:19,sex:'女'},
			// 			{id:'002','name':'周冬雨',age:20,sex:'女'},
			// 			{id:'003','name':'周杰伦',age:21,sex:'男'},
			// 			{id:'004','name':'温兆伦',age:22,sex:'男'}
			// 		],
			// 		filterPerson:[]
			// 	},
			// 	watch:{
			// 		keyWord:{
			// 			immediate:true,
			// 			handler(val) {
			// 				this.filterPerson = this.persons.filter((item) => {
			// 					return item.name.indexOf(val) > -1;
			// 				});
			// 			}
			// 		}
			// 	}
			// });
			// 使用计算实现
			const vm = new Vue({
				el:'#root',
				data:{
					keyWord:'',
					persons:[
						{id:'001','name':'马冬梅',age:19,sex:'女'},
						{id:'002','name':'周冬雨',age:20,sex:'女'},
						{id:'003','name':'周杰伦',age:21,sex:'男'},
						{id:'004','name':'温兆伦',age:22,sex:'男'}
					]
				},
				computed:{
					filterPerson(){
						return this.persons.filter((item) => {
								return item.name.indexOf(this.keyWord) > -1;
							});
					}
				}
			});
		</script>
	</body>
</html>